home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / OpenDoc 1.2b2c1 / OpenDoc / Interfaces / CPlusPlus / PstObj.xh < prev    next >
Encoding:
Text File  |  1997-02-13  |  6.3 KB  |  256 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: PstObj.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxh.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODPersistentObject_xh
  18. #define SOM_ODPersistentObject_xh
  19.  
  20. class ODPersistentObject;
  21.  
  22. #define ODPersistentObject_MajorVersion 1
  23. #define ODPersistentObject_MinorVersion 0
  24.  
  25. /* C++ SOM defs */
  26. #include <somcls.xh>
  27. #include <somcm.xh>
  28.  
  29. /* C++ parent defs */
  30. #ifndef SOM_ODRefCntObject_xh
  31. #include <RefCtObj.xh>
  32. #endif
  33.  
  34. #ifndef ODPersistentObject_API
  35. #define ODPersistentObject_API
  36. /*
  37.  * -- The Class API
  38.  */
  39.  
  40. /*
  41.  * Start of user-defined types:
  42.  */
  43. class SOMClass;
  44. class SOMObject;
  45. class ODFrame;
  46. class ODFacet;
  47. class ODObject;
  48. class ODExtension;
  49. class ODRefCntObject;
  50. class ODPersistentObject;
  51. class ODStorageUnit;
  52.  
  53. /*
  54.  * End of user-defined types.
  55.  */
  56.  
  57. #ifdef OLDIBMSOMAPISUPPORT
  58. #define ODPersistentObjectCClassData ODPersistentObjectClassData
  59. #define ODPersistentObjectNewClass(major,minor) somNewVersionedClassReference(ODPersistentObject,major,minor)
  60. #endif
  61.  
  62. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  63. #define ODPersistentObjectMetaClass SOMClass
  64.  
  65. #if PRAGMA_ALIGN_SUPPORTED
  66. #  pragma options align=power
  67. #endif
  68.  
  69. /* The API to the ODPersistentObject class object, and the methods it introduces. */
  70. SOMEXTERN struct ODPersistentObjectClassDataStructure {
  71. #ifdef OLDIBMSOMAPISUPPORT
  72.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  73. #else
  74.     long zero;
  75. #endif
  76.     somStaticClassInfo *sci;
  77.     somDToken        instanceDataToken;
  78.     long reserved [3];
  79.     somMToken InitPersistentObject;
  80.     somMToken InitPersistentObjectFromStorage;
  81.     somMToken ReleaseAll;
  82.     somMToken Externalize;
  83.     somMToken GetStorageUnit;
  84.     somMToken GetID;
  85.     somMToken CloneInto;
  86. } SOMDLINK ODPersistentObjectClassData;
  87.  
  88. #if PRAGMA_ALIGN_SUPPORTED
  89. #  pragma options align=reset
  90. #endif
  91.  
  92. #if !defined(ODPersistentObject_Class_Source) && !defined(SOM_Module_pstobj_Source)
  93. #if PRAGMA_IMPORT_SUPPORTED
  94. #pragma import list ODPersistentObjectClassData
  95. #endif
  96. #endif
  97.  
  98.  
  99. /*
  100.  * -- Typedefs and inline method declarations for left path inherited methods
  101.  * -- are omitted because this compilation had -museinheritedmethods in effect
  102.  */
  103.  
  104.  
  105. /*
  106.  * -- Typedefs for ODPersistentObject Method Procedures
  107.  */
  108. SOMEXTERN {
  109. typedef void   (* SOMLINK somTD_ODPersistentObject_InitPersistentObject)(ODPersistentObject *somSelf, Environment *ev,
  110.         ODStorageUnit* storageUnit);
  111. typedef void   (* SOMLINK somTD_ODPersistentObject_InitPersistentObjectFromStorage)(ODPersistentObject *somSelf, Environment *ev,
  112.         ODStorageUnit* storageUnit);
  113. typedef void   (* SOMLINK somTD_ODPersistentObject_ReleaseAll)(ODPersistentObject *somSelf, Environment *ev);
  114. typedef void   (* SOMLINK somTD_ODPersistentObject_Externalize)(ODPersistentObject *somSelf, Environment *ev);
  115. typedef ODStorageUnit*   (* SOMLINK somTD_ODPersistentObject_GetStorageUnit)(ODPersistentObject *somSelf, Environment *ev);
  116. typedef ODID   (* SOMLINK somTD_ODPersistentObject_GetID)(ODPersistentObject *somSelf, Environment *ev);
  117. typedef void   (* SOMLINK somTD_ODPersistentObject_CloneInto)(ODPersistentObject *somSelf, Environment *ev,
  118.         ODDraftKey key,
  119.         ODStorageUnit* toSU,
  120.         ODFrame* scope);
  121. }
  122.  
  123. #endif /* ODPersistentObject_API */
  124.  
  125.  
  126. /*
  127.  * -- This emitter treats Method Tokens as Thunks by default.
  128.  * -- Use the sc modifier "nothunks" to change this default
  129.  */
  130. #undef somresolve_
  131. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  132.  
  133. /*
  134.  * -- The C++ Wrapper Class for ODPersistentObject
  135.  */
  136. class ODPersistentObject : public ODRefCntObject
  137. {
  138. public:
  139.  
  140. // ODPersistentObject::new registers use of the class object, and then uses somNew
  141. // to allocate memory and load the object method table pointer. 
  142. void *operator new(size_t size)
  143. {
  144.     SOM_IgnoreWarning(size);
  145.     // Allocate memory using the default allocator for ODPersistentObject, and
  146.     // clear mem & set method table pointer, call basic initialization
  147. #ifdef SOMCHKNULL
  148.     void * __somResult = (void *)
  149.       somNewObject(ODPersistentObject);
  150.     SOMCHKNULL(__somResult);
  151.     return __somResult;
  152. #else
  153.     return (void*) somNewObject(ODPersistentObject);
  154. #endif
  155. }
  156.  
  157. // ODPersistentObject::delete uses the default deallocator for the object's class.
  158. void operator delete(void * obj)
  159. {
  160.     if (obj) {
  161.         SOM_Resolve(obj,SOMObject,somFree)
  162.            ( (SOMObject*) obj );
  163.     }
  164. }
  165.  
  166. /* method: InitPersistentObject */
  167. void   InitPersistentObject(Environment *ev,
  168.         ODStorageUnit* storageUnit)
  169. {
  170.    SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,InitPersistentObject)
  171.     (this,ev,storageUnit);
  172. #ifdef SOMCHKEXCEPT
  173.       SOMCHKEXCEPT;
  174. #endif
  175. }
  176.  
  177. /* method: InitPersistentObjectFromStorage */
  178. void   InitPersistentObjectFromStorage(Environment *ev,
  179.         ODStorageUnit* storageUnit)
  180. {
  181.    SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,InitPersistentObjectFromStorage)
  182.     (this,ev,storageUnit);
  183. #ifdef SOMCHKEXCEPT
  184.       SOMCHKEXCEPT;
  185. #endif
  186. }
  187.  
  188. /* method: ReleaseAll */
  189. void   ReleaseAll(Environment *ev)
  190. {
  191.    SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,ReleaseAll)
  192.     (this,ev);
  193. #ifdef SOMCHKEXCEPT
  194.       SOMCHKEXCEPT;
  195. #endif
  196. }
  197.  
  198. /* method: Externalize */
  199. void   Externalize(Environment *ev)
  200. {
  201.    SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,Externalize)
  202.     (this,ev);
  203. #ifdef SOMCHKEXCEPT
  204.       SOMCHKEXCEPT;
  205. #endif
  206. }
  207.  
  208. /* method: GetStorageUnit */
  209. ODStorageUnit*   GetStorageUnit(Environment *ev)
  210. {
  211.    #ifdef SOMCHKEXCEPT
  212.    ODStorageUnit* __somResult = 
  213.       SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,GetStorageUnit)
  214.     (this,ev);
  215.       SOMCHKEXCEPT;
  216.    return __somResult;
  217. #else
  218.    return SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,GetStorageUnit)
  219.     (this,ev);
  220. #endif
  221. }
  222.  
  223. /* method: GetID */
  224. ODID   GetID(Environment *ev)
  225. {
  226.    #ifdef SOMCHKEXCEPT
  227.    ODID __somResult = 
  228.       SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,GetID)
  229.     (this,ev);
  230.       SOMCHKEXCEPT;
  231.    return __somResult;
  232. #else
  233.    return SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,GetID)
  234.     (this,ev);
  235. #endif
  236. }
  237.  
  238. /* method: CloneInto */
  239. void   CloneInto(Environment *ev,
  240.         ODDraftKey key,
  241.         ODStorageUnit* toSU,
  242.         ODFrame* scope)
  243. {
  244.    SOM_ResolveD(this,ODPersistentObject,ODPersistentObject,CloneInto)
  245.     (this,ev,key,toSU,scope);
  246. #ifdef SOMCHKEXCEPT
  247.       SOMCHKEXCEPT;
  248. #endif
  249. }
  250.  
  251. };   /* ODPersistentObject */
  252.  
  253.  
  254.  
  255. #endif       /* SOM_ODPersistentObject_xh */
  256.